﻿using System;
using System.ComponentModel;
using System.IO;
using Styx.Helpers;
using Styx;

namespace HBTracker{
    public class HBTrackerSettings : Settings
    {
        private static HBTrackerSettings _instance;

        public HBTrackerSettings()
            : base(Path.Combine(Path.Combine(SettingsDirectory, "Settings"), string.Format("HBTrackerSettings_{0}.xml", StyxWoW.Me.Name)))
        {

        }

        public static HBTrackerSettings Instance { get { return _instance ?? (_instance = new HBTrackerSettings()); } }

        #region Category: General

        [Setting]
        [Category("General")]
        [Styx.Helpers.DefaultValue("058b32f7fb7ec89f9ec06a4b4ee1d4d78eba2ef3")]
        [DisplayName("API Key")]
        public string ApiKey { get; set; }

        [Setting]
        [Category("General")]
        [Styx.Helpers.DefaultValue("4d89f9b04975f8c371b19e6555ccbd0a46e21672")]
        [DisplayName("Prowl Api Key")]
        public string ProwlApi { get; set; }

        [Setting]
        [Category("General")]
        [Styx.Helpers.DefaultValue("")]
        [DisplayName("Android Device Key")]
        public string AndroidApi { get; set; }

        [Setting]
        [Category("General")]
        [Styx.Helpers.DefaultValue("http://25.197.133.244/HBTracker/index.php?r=api")]
        [Description("Url to your own hosting script should be like http://www.XXXXXX.eu/index.php?r=api")]
        [DisplayName("Own Hosting URL")]
        public string OwnUrl { get; set; }
		
		[Setting]
        [Category("General")]
        [Styx.Helpers.DefaultValue("http://25.197.133.244/HBTracker/screen/upload.php")]
        [Description("Url to your own uploading script")]
        [DisplayName("Own uploading script")]
        public string ScriptUrl { get; set; }

        #endregion  
        
        #region Category: Notifications

        [Setting]
        [Category("Bot Mobile Notifications")]
        [Styx.Helpers.DefaultValue(true)]
        [DisplayName("Level up")]
        public Boolean NotfLevel { get; set; }

        [Setting]
        [Category("Bot Mobile Notifications")]
        [Styx.Helpers.DefaultValue(false)]
        [DisplayName("Died")]
        public Boolean NotfDied { get; set; }

        [Setting]
        [Category("Bot Mobile Notifications")]
        [Styx.Helpers.DefaultValue(false)]
        [DisplayName("Start")]
        public Boolean NotfStart { get; set; }

        [Setting]
        [Category("Bot Mobile Notifications")]
        [Styx.Helpers.DefaultValue(false)]
        [DisplayName("Stop")]
        public Boolean NotfStop { get; set; }

        [Setting]
        [Category("Chat Mobile Notifications")]
        [Styx.Helpers.DefaultValue(false)]
        [DisplayName("Whisper")]
        public Boolean NotfWhisp { get; set; }

        [Setting]
        [Category("Chat Mobile Notifications")]
        [Styx.Helpers.DefaultValue(false)]
        [DisplayName("Battle.NET Whisper")]
        public Boolean NotfBnetWhisper { get; set; }
        #endregion

        #region Category : Debug

        [Setting]
        [Category("Debug")]
        [Styx.Helpers.DefaultValue(false)]
        [DisplayName("Debug")]
        [Description("Any cool information will get logged...")]
        public Boolean Debug { get; set; }

        [Setting]
        [Category("Debug")]
        [Styx.Helpers.DefaultValue(false)]
        [DisplayName("Web Debug")]
        [Description("Checking data sent to the webserver, or any shit...")]
        public Boolean Pdebug { get; set; }

        [Setting]
        [Category("Debug")]
        [Styx.Helpers.DefaultValue(15)]
        [DisplayName("Refresh Rate")]
        [Description("To avoid breaking that shit, dont try to go under 10.")]
        public int RefreshRate { get; set; }

        #endregion
        
    }

}
